package org.jsola.hr.web;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.jsola.core.Page;
import org.jsola.core.Result;
import org.jsola.hr.dto.SocDispatchEmpLessAddDTO;
import org.jsola.hr.dto.SocDispatchEmpLessUpdateDTO;
import org.jsola.hr.query.SocDispatchEmpLessQuery;
import org.jsola.hr.vo.SocDispatchEmpLessListVO;
import org.jsola.hr.vo.SocDispatchEmpLessVO;

import java.util.List;

/**
 * 社保派单员工表_减员
 *
 * @author zhr
 */
@Api(tags = "hr-社保派单员工表_减员")
public interface ISocDispatchEmpLessControllerAPI {

    /**
     * 新增社保派单员工表_减员
     * @param socDispatchEmpLessAddDTO 社保派单员工表_减员新增实体
     * @return 社保派单员工表_减员展示对象
     */
    @ApiOperation(value = "新增社保派单员工表_减员")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "socDispatchEmpLessAddDTO", dataType = "SocDispatchEmpLessAddDTO", value = "新增社保派单员工表_减员", paramType = "body")
    })
    Result<SocDispatchEmpLessVO> save(SocDispatchEmpLessAddDTO socDispatchEmpLessAddDTO);


    /**
     * 修改社保派单员工表_减员
     * @param socDispatchEmpLessUpdateDTO 社保派单员工表_减员
     * @return 更新数量
     */
    @ApiOperation(value = "修改社保派单员工表_减员")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "socDispatchEmpLessUpdateDTO", dataType = "SocDispatchEmpLessUpdateDTO", value = "修改社保派单员工表_减员", paramType = "body")
    })
    Result<Integer> update(SocDispatchEmpLessUpdateDTO socDispatchEmpLessUpdateDTO);




    /**
     * 删除单个社保派单员工表_减员，彻底删除
     * @param socDispatchEmpLessId 社保派单员工表_减员id
     * @return 删除数量
     */
    @ApiOperation(value="删除单个社保派单员工表_减员，彻底删除")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "socDispatchEmpLessId", dataType = "String", value = "社保派单员工表_减员id", paramType = "path")
    })
    Result<Integer> delete(String socDispatchEmpLessId);


    /**
     * 批量删除社保派单员工表_减员，彻底删除
     * @param socDispatchEmpLessIds 社保派单员工表_减员id集合
     * @return 删除数量
     */
    @ApiOperation(value = "批量删除社保派单员工表_减员，彻底删除")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "socDispatchEmpLessIds", dataType = "String[]", value = "社保派单员工表_减员id数组", paramType = "body" ,allowMultiple = true)
    })
    Result<Integer> deleteBatch(String[] socDispatchEmpLessIds);


    /**
     * 根据社保派单员工表_减员id查询社保派单员工表_减员详情
     * @param socDispatchEmpLessId 社保派单员工表_减员id
     * @return 社保派单员工表_减员详情
     */
    @ApiOperation(value="根据社保派单员工表_减员id查询社保派单员工表_减员详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "socDispatchEmpLessId", dataType = "String", value = "社保派单员工表_减员id", paramType = "path")
    })
    Result<SocDispatchEmpLessVO> findById(String socDispatchEmpLessId);


    /**
     * 查询社保派单员工表_减员
     * @param socDispatchEmpLessQuery 社保派单员工表_减员查询参数
     * @return page
     */
    @ApiOperation(value="查询社保派单员工表_减员")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "socDispatchEmpLessQuery", dataType = "SocDispatchEmpLessQuery", value = "社保派单员工表_减员查询参数", paramType = "query")
    })
    Result<List<SocDispatchEmpLessListVO>> listAll(SocDispatchEmpLessQuery socDispatchEmpLessQuery);


     /**
     * 分页查询社保派单员工表_减员
     * @param socDispatchEmpLessQuery 社保派单员工表_减员查询参数
     * @return page
     */
    @ApiOperation(value="分页查询社保派单员工表_减员")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "socDispatchEmpLessQuery", dataType = "SocDispatchEmpLessQuery", value = "社保派单员工表_减员查询参数", paramType = "query")
    })
    Result<Page<SocDispatchEmpLessListVO>> page(SocDispatchEmpLessQuery socDispatchEmpLessQuery);

}

